package com.ylsk.check.service;

import java.util.List;

import com.ylsk.check.domain.dto.CheckRecordDTO;
import com.ylsk.check.domain.so.CheckRecordSO;
import com.ylsk.check.domain.vo.CheckRecordVO;
import com.ylsk.check.domain.vo.CheckRecordDetailVO;
import com.ylsk.check.domain.vo.ReportInfoVO;
import com.ylsk.check.domain.vo.TodayCheckTaskVO;

/**
 * 施工检查记录Service接口
 *
 * @author yangsy
 * @date 2023-12-18
 */
public interface ICheckRecordService
{
    /**
     * 查询施工检查记录
     *
     * @param checkRecordId 施工检查记录主键
     * @return 施工检查记录
     */
    public CheckRecordVO selectCheckRecordByCheckRecordId(Long checkRecordId);

    /**
     * 查询施工检查记录列表
     *
     * @param checkRecordSO 施工检查记录
     * @return 施工检查记录集合
     */
    public List<CheckRecordVO> selectCheckRecordList(CheckRecordSO checkRecordSO);

    /**
     * 新增施工检查记录
     *
     * @param checkRecordDTO 施工检查记录
     * @return 结果
     */
    public int insertCheckRecord(CheckRecordDTO checkRecordDTO);

    /**
     * 修改施工检查记录
     *
     * @param checkRecordDTO 施工检查记录
     * @return 结果
     */
    public int updateCheckRecord(CheckRecordDTO checkRecordDTO);

    /**
     * 批量删除施工检查记录
     *
     * @param checkRecordIds 需要删除的施工检查记录主键集合
     * @return 结果
     */
    public int deleteCheckRecordByCheckRecordIds(Long[] checkRecordIds);

    /**
     * 删除施工检查记录信息
     *
     * @param checkRecordId 施工检查记录主键
     * @return 结果
     */
    public int deleteCheckRecordByCheckRecordId(Long checkRecordId);


    /**
     * 查询今天 要检查的单子 列表
     * @param checkRecordSO
     * @return
     */
    public List<TodayCheckTaskVO> selectTodayCheckTaskList(CheckRecordSO checkRecordSO);


    /**
     * 查询施工检查记录
     *
     * @param checkRecordId 施工检查记录主键
     * @return 施工检查记录
     */
    public CheckRecordDetailVO getCheckRecrdDetailInfo(Long checkRecordId);


    /**
     * 获取今日施工检查数据
     * @param checkRecordSO
     * @return
     */
    public List<ReportInfoVO> getTodayCheckData(CheckRecordSO checkRecordSO);
}
